package com.github.ecbp.store.service.dto;

import com.github.ecbp.common.req.BaseIdDTO;
import com.github.ecbp.common.validator.FlagValidator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;

/**
 * @Author Created by Alex·He on 2020/4/28 0:19
 * @Version V1.0
 * @Description: 商品传递参数
 */
@Data
@ApiModel
public class ProductDTO extends BaseIdDTO {

    private Long brandId;

    private Long productCategoryId;

    private Long freightTemplateId;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    @NotEmpty
    private String name;

    /**
     * 副标题
     */
    @ApiModelProperty(value = "副标题")
    private String subTitle;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;

    /**
     * 商品重量，默认为克
     */
    @ApiModelProperty(value = "商品重量，默认为克")
    private Double weight;

    /**
     * 上架状态：0->下架；1->上架
     */
    @ApiModelProperty(value = "上架状态：0->下架；1->上架")
    @FlagValidator({"0", "1"})
    private Integer publishStatus;

    /**
     * 新品状态:0->不是新品；1->新品
     */
    @ApiModelProperty(value = "新品状态:0->不是新品；1->新品")
    @FlagValidator({"0", "1"})
    private Integer newStatus;

    /**
     * 人气推荐状态；0->不推荐；1->推荐
     */
    @ApiModelProperty(value = "人气推荐状态；0->不推荐；1->推荐")
    @FlagValidator({"0", "1"})
    private Integer recommandStatus;

    /**
     * 是否为预告商品：0->不是；1->是
     */
    @ApiModelProperty(value = "是否为预告商品：0->不是；1->是")
    @FlagValidator({"0", "1"})
    private Integer previewStatus;

    /**
     * 关键字
     */
    @ApiModelProperty(value = "关键字")
    private String keyword;

    /**
     * 商品描述
     */
    @ApiModelProperty(value = "商品描述")
    private String description;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String note;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sort;

    /**
     * 商品SKU
     */
    @ApiModelProperty(value = "商品SKU")
    private ProductSkuDTO skuDTO;

    /**
     * 商品图片
     */
    @ApiModelProperty(value = "商品图片")
    private ProductPictureDTO pictureDTO;

    /**
     * 商品规格
     */
    @ApiModelProperty(value = "商品规格")
    private ProductSpecificationDTO specificationDTO;

    /**
     * 商品参数
     */
    @ApiModelProperty(value = "商品参数")
    private ProductParameterDTO parameterDTO;

    /**
     * 商品满减价格
     */
    @ApiModelProperty(value = "商品满减价格")
    private ProductFullReductionDTO fullReductionDTO;

    /**
     * 会员价格
     */
    @ApiModelProperty(value = "会员价格")
    private MemberPriceDTO memberPriceDTO;

    /**
     * 商品审核信息
     */
    @ApiModelProperty(value = "商品审核信息")
    private ProductVertifyRecordDTO vertifyRecordDTO;
}
